package com.charon.module.music.service;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;

import com.charon.common.util.DateUtils;
import com.charon.common.util.wangyi.WYHandler;
import com.charon.crawl.kugou.handler.KGHandler;
import com.charon.module.music.dao.SongCollectEntityMapper;
import com.charon.module.music.dao.SongListEntityMapper;
import com.charon.module.music.entity.SongCollectEntity;

import net.sf.json.JSONObject;

/**
 * @ClassName：MusicService.java
 * @Description: 音乐服务
 * @Author charon [248135724@qq.com]
 * @Date:   2018年9月28日 上午3:49:07 
 * @version V1.0 
 */
@Service
public class MusicService {
	
	@Autowired
	private SongListEntityMapper slem;
	
	@Autowired
	private SongCollectEntityMapper scem;
	
	/**
	 * @Description: 获取歌曲信息   
	 * @author:charon [248135724@qq.com]
	 * @date:   2018年12月3日 下午10:45:41 
	 * @param: @param hash
	 * @param: @param ablumId
	 * @param: @return      
	 * @return: JSONObject
	 */
	public JSONObject getSongInfo(String hash,String ablumId){
		if(StringUtils.isEmpty(hash))return null;
		if(StringUtils.isEmpty(ablumId))ablumId="";
		return KGHandler.getSongInfo(hash, ablumId);
	}
	
	/**
	 * @Description:搜索功能   
	 * @author:charon [248135724@qq.com]
	 * @date:   2018年12月3日 下午10:45:58 
	 * @param: @param keywords
	 * @param: @param page
	 * @param: @param pageSize
	 * @param: @return      
	 * @return: JSONObject
	 */
	public JSONObject kugouSearch(String keywords,Integer page,Integer pageSize){
		if(StringUtils.isEmpty(keywords))return null;
		if(page==null||page==0)page=1;
		if(pageSize==null||pageSize>10)pageSize=50;
		JSONObject json = KGHandler.kugouSearch(keywords,page,pageSize);
		return json;
	}
	
	/**
	 * @Description:获取歌单歌曲   
	 * @author:charon [248135724@qq.com]
	 * @date:   2018年12月3日 下午10:47:28 
	 * @param: @return      
	 * @return: JSONObject
	 */
	public JSONObject getSongList(String songId){
		
		
		return null;
	}
	
	/**
	 * @Description: 双平台搜索功能 
	 * @Author charon [248135724@qq.com]
	 * @Date:   2018年11月22日 下午2:08:27 
	 * @param keywords 搜索词
	 * @param page 页码
	 * @param pageSize  每页数量
 	 * @param type 类型（默认1  1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频）
	 * @return
	 */
	public ArrayList<JSONObject> search(String keywords,Integer page,Integer pageSize,String type){
		JSONObject kugouSearch = KGHandler.kugouSearch(keywords, page, pageSize);
		JSONObject searchByType=null;
		try {
			searchByType = WYHandler.searchByType(keywords, pageSize+"", page+"", type);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		ArrayList<JSONObject> arr=new ArrayList<JSONObject>();
		arr.add(kugouSearch);
		arr.add(searchByType);
		return arr;
	} 
	
	/**
	 * @Description: 双平台推荐歌单 
	 * @Author charon [248135724@qq.com]
	 * @Date:   2018年11月22日 下午2:30:41 
	 * @param limit
	 * @return
	 */
	public List getCommendLists(Integer limit){
		JSONObject friendLists = WYHandler.getNetFriendLists(limit+"");
		SongCollectEntity sce=new SongCollectEntity();
		//获取往前一天的推荐歌单
		Date date = DateUtils.minusDay(new Date(), 1);
		sce.setCreateDate(DateUtils.formatDateTime(date));
		List<SongCollectEntity> list = scem.selectByEntity(sce);
		ArrayList<Object> arr =new ArrayList<Object>();
		arr.add(friendLists);
		if(list!=null&&list.size()>0){
			arr.add(list);
		}
		return arr;
	}
	
}
